home *** CD-ROM | disk | FTP | other *** search
- package sun.applet;
-
- import java.applet.Applet;
- import java.applet.AppletContext;
- import java.applet.AudioClip;
- import java.awt.Component;
- import java.awt.Container;
- import java.awt.Dimension;
- import java.awt.Event;
- import java.awt.Image;
- import java.awt.Insets;
- import java.awt.Point;
- import java.awt.Toolkit;
- import java.awt.Window;
- import java.io.ByteArrayOutputStream;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.PrintStream;
- import java.net.URL;
- import java.util.Enumeration;
- import java.util.Hashtable;
- import java.util.Properties;
- import java.util.Vector;
- import sun.awt.image.URLImageSource;
- import sun.awt.win32.UnborderedWindow;
-
- public class AriadnaViewer extends UnborderedWindow implements AppletContext {
- AriadnaViewerPanel panel;
- URL urlToJump;
- static boolean inited;
- public static AriadnaViewer[] applets = new AriadnaViewer[10000];
- public static int appletCount;
- static Hashtable audioHash = new Hashtable();
- static Hashtable imgHash = new Hashtable();
- static Vector appletPanels = new Vector();
- static Hashtable systemParam = new Hashtable();
- static AppletProps props;
- // $FF: renamed from: c int
- static int field_0;
-
- public static void PrintDebug(String var0) {
- NatAriadna.PrintDebug(var0);
- }
-
- public AriadnaViewer() {
- if (inited) {
- init();
- }
- }
-
- public AriadnaViewer(int var1, int var2, URL var3, Hashtable var4) {
- PrintDebug("I'm in AriadnaViewer()");
- ((Container)this).add("Center", this.panel = new AriadnaViewerPanel(var3, var4));
- this.panel.init();
- this.panel.move(0, 0);
- appletPanels.addElement(this.panel);
- ((UnborderedWindow)this).move(NatAriadna.CURRENT_X_CRD, NatAriadna.CURRENT_Y_CRD);
- ((Window)this).pack();
- ((Window)this).show();
- this.showStatus("starting applet...");
- this.panel.sendEvent(1);
- this.panel.sendEvent(2);
- this.panel.sendEvent(3);
- ((UnborderedWindow)this).aReshape(NatAriadna.CURRENT_X_CRD, NatAriadna.CURRENT_Y_CRD, this.panel.appletSize.width, this.panel.appletSize.height);
- this.panel.move(NatAriadna.CURRENT_X_CRD, NatAriadna.CURRENT_Y_CRD);
- }
-
- static synchronized AudioClip getAudioClipFromCache(URL var0) {
- Object var1 = (AudioClip)audioHash.get(var0);
- if (var1 == null) {
- audioHash.put(var0, var1 = new AppletAudioClip(var0));
- }
-
- return (AudioClip)var1;
- }
-
- public AudioClip getAudioClip(URL var1) {
- return getAudioClipFromCache(var1);
- }
-
- static synchronized Image getImageFromHash(URL var0) {
- Image var1 = (Image)imgHash.get(var0);
- if (var1 == null) {
- try {
- imgHash.put(var0, var1 = Toolkit.getDefaultToolkit().createImage(new URLImageSource(var0)));
- } catch (Exception var2) {
- }
- }
-
- return var1;
- }
-
- public Image getImage(URL var1) {
- return getImageFromHash(var1);
- }
-
- public Applet getApplet(String var1) {
- AppletSecurity var2 = (AppletSecurity)System.getSecurityManager();
- var1 = var1.toLowerCase();
- Enumeration var3 = appletPanels.elements();
-
- while(var3.hasMoreElements()) {
- AppletPanel var4 = (AppletPanel)var3.nextElement();
- String var5 = var4.getParameter("name");
- if (var5 != null) {
- var5 = var5.toLowerCase();
- }
-
- if (var1.equals(var5) && var4.getDocumentBase().equals(this.panel.getDocumentBase())) {
- try {
- var2.checkConnect(this.panel.getCodeBase().getHost(), var4.getCodeBase().getHost());
- return var4.applet;
- } catch (SecurityException var6) {
- }
- }
- }
-
- return null;
- }
-
- public Enumeration getApplets() {
- AppletSecurity var1 = (AppletSecurity)System.getSecurityManager();
- Vector var2 = new Vector();
- Enumeration var3 = appletPanels.elements();
-
- while(var3.hasMoreElements()) {
- AppletPanel var4 = (AppletPanel)var3.nextElement();
- if (var4.getDocumentBase().equals(this.panel.getDocumentBase())) {
- try {
- var1.checkConnect(this.panel.getCodeBase().getHost(), var4.getCodeBase().getHost());
- var2.addElement(var4.applet);
- } catch (SecurityException var5) {
- }
- }
- }
-
- return var2.elements();
- }
-
- public void showDocument(URL var1) {
- if (this.urlToJump != var1) {
- this.urlToJump = var1;
- super.showDocument(var1);
- }
- }
-
- public void showDocument(URL var1, String var2) {
- }
-
- public void showStatus(String var1) {
- PrintDebug("Applet Status: " + var1);
- if (var1 == "appletloader.loaded") {
- var1 = "Java applet loaded...";
- }
-
- if (var1 == "appletloader.inited") {
- var1 = "Java applet inited...";
- }
-
- if (var1 == "appletloader.started") {
- var1 = "Java applet started.";
- }
-
- ((UnborderedWindow)this).PrintToStatusBar(var1);
- }
-
- static void printTag(PrintStream var0, Hashtable var1) {
- var0.print("<applet");
- String var2 = (String)var1.get("codebase");
- if (var2 != null) {
- var0.print(" codebase=\"" + var2 + "\"");
- }
-
- var2 = (String)var1.get("code");
- if (var2 == null) {
- var2 = "applet.class";
- }
-
- var0.print(" code=\"" + var2 + "\"");
- var2 = (String)var1.get("width");
- if (var2 == null) {
- var2 = "150";
- }
-
- var0.print(" width=" + var2);
- var2 = (String)var1.get("height");
- if (var2 == null) {
- var2 = "100";
- }
-
- var0.print(" height=" + var2);
- var2 = (String)var1.get("name");
- if (var2 != null) {
- var0.print(" name=\"" + var2 + "\"");
- }
-
- var0.println(">");
- int var3 = var1.size();
- String[] var4 = new String[var3];
- var3 = 0;
-
- for(Enumeration var5 = var1.keys(); var5.hasMoreElements(); ++var3) {
- String var6 = (String)var5.nextElement();
-
- int var7;
- for(var7 = 0; var7 < var3 && var4[var7].compareTo(var6) < 0; ++var7) {
- }
-
- System.arraycopy(var4, var7, var4, var7 + 1, var3 - var7);
- var4[var7] = var6;
- }
-
- for(int var13 = 0; var13 < var3; ++var13) {
- String var14 = var4[var13];
- if (systemParam.get(var14) == null) {
- var0.println("<param name=" + var14 + " value=\"" + var1.get(var14) + "\">");
- }
- }
-
- var0.println("</applet>");
- }
-
- public void updateAtts() {
- Dimension var1 = this.panel.size();
- Insets var2 = this.panel.insets();
- this.panel.atts.put("width", (new Integer(var1.width - (var2.left + var2.right))).toString());
- this.panel.atts.put("height", (new Integer(var1.height - (var2.top + var2.bottom))).toString());
- }
-
- void appletRestart() {
- this.panel.sendEvent(4);
- this.panel.sendEvent(5);
- this.panel.sendEvent(2);
- this.panel.sendEvent(3);
- }
-
- void appletReload() {
- this.panel.sendEvent(4);
- this.panel.sendEvent(5);
- this.panel.sendEvent(0);
- AppletPanel.flushClassLoader(this.panel.baseURL);
- this.panel.sendEvent(1);
- this.panel.sendEvent(2);
- this.panel.sendEvent(3);
- }
-
- void appletClone() {
- Point var1 = ((Component)this).location();
- this.updateAtts();
- new AriadnaViewer(var1.x + 30, var1.y + 10, this.panel.documentURL, (Hashtable)this.panel.atts.clone());
- }
-
- void appletTag() {
- ByteArrayOutputStream var1 = new ByteArrayOutputStream();
- this.updateAtts();
- printTag(new PrintStream(var1), this.panel.atts);
- this.showStatus("Tag shown");
- Point var2 = ((Component)this).location();
- new TextFrame(var2.x + 50, var2.y + 20, "Applet HTML Tag", var1.toString());
- }
-
- void appletInfo() {
- String var1 = this.panel.applet.getAppletInfo();
- if (var1 == null) {
- var1 = "-- no applet info --";
- }
-
- var1 = var1 + "\n\n";
- String[][] var2 = this.panel.applet.getParameterInfo();
- if (var2 != null) {
- for(int var3 = 0; var3 < var2.length; ++var3) {
- var1 = var1 + var2[var3][0] + " -- " + var2[var3][1] + " -- " + var2[var3][2] + "\n";
- }
- } else {
- var1 = var1 + "-- no parameter info --";
- }
-
- Point var5 = ((Component)this).location();
- new TextFrame(var5.x + 50, var5.y + 20, "Applet Info", var1);
- }
-
- void appletEdit() {
- }
-
- static synchronized void networkProperties() {
- if (props == null) {
- props = new AppletProps();
- }
-
- props.show();
- }
-
- void appletStart() {
- this.panel.sendEvent(3);
- }
-
- void appletStop() {
- this.panel.sendEvent(4);
- }
-
- void appletClose() {
- this.panel.sendEvent(4);
- this.panel.sendEvent(5);
- this.panel.sendEvent(0);
- this.panel.sendEvent(6);
- appletPanels.removeElement(this.panel);
- ((Window)this).dispose();
- }
-
- void appletQuit() {
- System.exit(0);
- }
-
- public boolean handleEvent(Event var1) {
- switch (var1.id) {
- case 201:
- this.appletClose();
- return true;
- case 203:
- this.appletStop();
- return true;
- case 204:
- this.appletStart();
- return true;
- case 503:
- case 504:
- case 505:
- case 506:
- return super.handleEvent(var1);
- case 51234:
- ((Component)this).resize(((Container)this).preferredSize());
- ((Container)this).validate();
- return true;
- default:
- return super.handleEvent(var1);
- }
- }
-
- public static void init() {
- Properties var0 = new Properties(System.getProperties());
- ((Hashtable)var0).put("acl.read", "+");
- ((Hashtable)var0).put("acl.read.default", "");
- ((Hashtable)var0).put("acl.write", "+");
- ((Hashtable)var0).put("acl.write.default", "");
- ((Hashtable)var0).put("browser", "sun.applet.AppletViewer");
- ((Hashtable)var0).put("browser.version", "1.05");
- ((Hashtable)var0).put("browser.vendor", "Sun Microsystems Inc.");
- ((Hashtable)var0).put("http.agent", "JDK/1.0");
- ((Hashtable)var0).put("firewallSet", "true");
- ((Hashtable)var0).put("firewallHost", "sunweb.ebay");
- ((Hashtable)var0).put("firewallPort", "80");
- ((Hashtable)var0).put("package.restrict.access.sun", "true");
- ((Hashtable)var0).put("package.restrict.access.netscape", "true");
- ((Hashtable)var0).put("package.restrict.definition.java", "true");
- ((Hashtable)var0).put("package.restrict.definition.sun", "true");
- ((Hashtable)var0).put("package.restrict.definition.netscape", "true");
- ((Hashtable)var0).put("java.version.applet", "true");
- ((Hashtable)var0).put("java.vendor.applet", "true");
- ((Hashtable)var0).put("java.vendor.url.applet", "true");
- ((Hashtable)var0).put("java.class.version.applet", "true");
- ((Hashtable)var0).put("os.name.applet", "true");
- ((Hashtable)var0).put("os.version.applet", "true");
- ((Hashtable)var0).put("os.arch.applet", "true");
- ((Hashtable)var0).put("file.separator.applet", "true");
- ((Hashtable)var0).put("path.separator.applet", "true");
- ((Hashtable)var0).put("line.separator.applet", "true");
- var0 = new Properties(var0);
-
- try {
- FileInputStream var1 = new FileInputStream(System.getProperty("user.home") + File.separator + ".hotjava" + File.separator + "properties");
- var0.load(var1);
- var1.close();
- } catch (Exception var2) {
- System.out.println("[no properties loaded, using defaults]");
- }
-
- System.setProperties(var0);
- System.setSecurityManager(new AppletSecurity());
- }
-
- static void skipSpace(InputStream var0) throws IOException {
- while(field_0 >= 0 && (field_0 == 32 || field_0 == 9 || field_0 == 10 || field_0 == 13)) {
- field_0 = var0.read();
- }
-
- }
-
- static String scanIdentifier(InputStream var0) throws IOException {
- StringBuffer var1 = new StringBuffer();
-
- while(true) {
- while(field_0 >= 97 && field_0 <= 122) {
- var1.append((char)field_0);
- field_0 = var0.read();
- }
-
- if (field_0 < 65 || field_0 > 90) {
- if (field_0 < 48 || field_0 > 57) {
- return var1.toString();
- }
-
- var1.append((char)field_0);
- field_0 = var0.read();
- } else {
- var1.append((char)(97 + (field_0 - 65)));
- field_0 = var0.read();
- }
- }
- }
-
- static Hashtable scanTag(InputStream var0) throws IOException {
- Hashtable var1 = new Hashtable();
- skipSpace(var0);
-
- while(field_0 >= 0 && field_0 != 62) {
- String var2 = scanIdentifier(var0);
- String var3 = "";
- skipSpace(var0);
- if (field_0 == 61) {
- int var4 = -1;
- field_0 = var0.read();
- skipSpace(var0);
- if (field_0 == 39 || field_0 == 34) {
- var4 = field_0;
- field_0 = var0.read();
- }
-
- StringBuffer var5;
- for(var5 = new StringBuffer(); field_0 > 0 && (var4 < 0 && field_0 != 32 && field_0 != 9 && field_0 != 10 && field_0 != 13 && field_0 != 62 || var4 >= 0 && field_0 != var4); field_0 = var0.read()) {
- var5.append((char)field_0);
- }
-
- if (field_0 == var4) {
- field_0 = var0.read();
- }
-
- skipSpace(var0);
- var3 = var5.toString();
- }
-
- System.out.println("PUT " + var2 + " = '" + var3 + "'");
- var1.put(var2, var3);
- skipSpace(var0);
- }
-
- return var1;
- }
-
- static void parse(URL var0, int var1, int var2, int var3) throws IOException {
- InputStream var4 = var0.openStream();
- Hashtable var5 = null;
- field_0 = var4.read();
-
- while(field_0 >= 0) {
- if (field_0 == 60) {
- field_0 = var4.read();
- if (field_0 == 47) {
- field_0 = var4.read();
- String var6 = scanIdentifier(var4);
- if (var6.equals("applet")) {
- if (var5 != null) {
- appletCount = var1;
- applets[appletCount] = new AriadnaViewer(var2, var3, var0, var5);
- return;
- }
-
- var5 = null;
- }
- } else {
- String var10 = scanIdentifier(var4);
- if (var10.equals("param")) {
- Hashtable var7 = scanTag(var4);
- String var8 = (String)var7.get("name");
- if (var8 == null) {
- System.out.println("Warning: <param name=... value=...> tag requires name attribute.");
- } else {
- String var9 = (String)var7.get("value");
- if (var9 == null) {
- System.out.println("Warning: <param name=... value=...> tag requires value attribute.");
- } else if (var5 != null) {
- var5.put(var8.toLowerCase(), var9);
- } else {
- System.out.println("Warning: <param> tag outside <applet> ... </applet>.");
- }
- }
- } else if (var10.equals("applet")) {
- var5 = scanTag(var4);
- if (var5.get("code") == null) {
- System.out.println("Warning: <applet> tag requires code attribute.");
- var5 = null;
- } else if (var5.get("width") == null) {
- System.out.println("Warning: <applet> tag requires width attribute.");
- var5 = null;
- } else if (var5.get("height") == null) {
- System.out.println("Warning: <applet> tag requires height attribute.");
- var5 = null;
- }
- } else if (var10.equals("app")) {
- System.out.println("Warning: <app> tag no longer supported, use <applet> instead:");
- Hashtable var13 = scanTag(var4);
- var10 = (String)var13.get("class");
- if (var10 != null) {
- var13.remove("class");
- var13.put("code", var10 + ".class");
- }
-
- var10 = (String)var13.get("src");
- if (var10 != null) {
- var13.remove("src");
- var13.put("codebase", var10);
- }
-
- if (var13.get("width") == null) {
- var13.put("width", "100");
- }
-
- if (var13.get("height") == null) {
- var13.put("height", "100");
- }
-
- printTag(System.out, var13);
- System.out.println();
- }
- }
- } else {
- field_0 = var4.read();
- }
- }
-
- var4.close();
- }
-
- static void usage() {
- System.out.println("use: appletviewer [-debug] url|file ...");
- }
-
- protected void showAppletStatus(String var1) {
- ((UnborderedWindow)this).PrintToStatusBar(var1);
- }
-
- static {
- systemParam.put("codebase", "codebase");
- systemParam.put("code", "code");
- systemParam.put("alt", "alt");
- systemParam.put("width", "width");
- systemParam.put("height", "height");
- systemParam.put("align", "align");
- systemParam.put("vspace", "vspace");
- systemParam.put("hspace", "hspace");
- }
- }
-